// 给定一个长度为n的数列，请你求出数列中每个数的二进制表示1的个数。
#include<bits/stdc++.h>
using namespace std;
int n;
int lowbit(int x) // 返回x的二进制表示中最低位的1所对应的值
{
    return x & -x; // 只有最低位的1会被保留
}
int fun(int x) 
{
    int num = 0;
    while(x)
    {
        x -= lowbit(x);
        num ++;
    }
    return num;
}
int main()
{
    cin >> n;
    while (n --)
    {
        int x;
        cin >> x;
        cout << fun(x) << ' ';
    }
    return 0;     
}